package cc.rengu.igas.bsps.common.dao;

import cc.rengu.igas.bsps.common.entity.AgentProfitStatis;
import cc.rengu.oltp.utility.bean.PageInfo;
import cc.rengu.oltp.utility.bean.PageResult;

import java.util.List;

/**
 * 代理商分润统计信息表操作接口类
 * Created by 王成 on 2020/3/24
 */
public interface BspsAgentProfitStatisMapper {
    /**
     * 根据代理商商户号及清算日期区间查询代理商分润信息
     *
     * @param instId       多法人标识
     * @param agentMchntNo 代理商商户号
     * @param startDate    清算开始日期
     * @param endDate      清算截止日期
     * @return 代理商分润信息
     * @throws Exception 异常
     */
    List<AgentProfitStatis> selectBspsAgentProfitStatisInfoByAgentMchntNo(String instId, String agentMchntNo, String startDate, String endDate) throws Exception;

    /**
     * 根据代理商商户号及清算日期查询代理商分润明细信息
     *
     * @param instId       多法人标识
     * @param agentMchntNo 代理商商户号
     * @param settleDate   清算日期
     * @return 代理商分润明细信息
     * @throws Exception 异常
     */
    List<AgentProfitStatis> selectBspsAgentProfitStatisInfoBySettleDate(String instId, String agentMchntNo, String settleDate) throws Exception;

    /**
     * 根据代理商商户号及清算日期区间查询代理商分润信息
     *
     * @param instId       多法人标识
     * @param agentMchntNo 代理商商户号
     * @param startDate    清算开始日期
     * @param endDate      清算截止日期
     * @return 代理商分润信息
     * @throws Exception 异常
     */
    PageResult selectBspsAgentProfitStatisInfoByAgentMchntNoPage(String instId, String agentMchntNo, String startDate, String endDate, PageInfo pageInfo) throws Exception;

    /**
     * 根据代理商商户号及清算日期查询代理商分润明细信息
     *
     * @param instId       多法人标识
     * @param agentMchntNo 代理商商户号
     * @param settleDate   清算日期
     * @return 代理商分润明细信息
     * @throws Exception 异常
     */
    PageResult selectBspsAgentProfitStatisInfoBySettleDatePage(String instId, String agentMchntNo, String settleDate, PageInfo pageInfo) throws Exception;

}
